/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.pucp.Seguridad.Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Date;
import pe.edu.pucp.Modelo.Configuracion;
import pe.edu.pucp.Modelo.Impuesto;
import pe.edu.pucp.Modelo.Permiso;
import pe.edu.pucp.Modelo.Usuario;
import pe.edu.pucp.Seguridad.DAO.ConfiguracionDAO;
import pe.edu.pucp.Seguridad.Vista.ConfiguracionGUI;
import pe.edu.pucp.Util.Constante;
import pe.edu.pucp.Util.LogHelper;
import pe.edu.pucp.Util.ValHelper;

/**
 *
 * @author jorge
 */
public class ConfiguracionControlador {
    private ConfiguracionDAO dao;
    private ConfiguracionGUI view;
    private Configuracion conf;
    private Usuario usract;
    private Impuesto imp;
    
    public ConfiguracionControlador(ConfiguracionDAO cdao, ConfiguracionGUI cview, Usuario usr){
        dao = cdao;
        view = cview;        
        usract=usr;
        view.mostrarPermisos(new  ArrayList<Permiso>(usr.getPerfil().getPermisos()));
        
        conf = dao.buscarConfiguracion();        
        imp = dao.buscarImpuesto(usr.getAeropuerto().getCiudad().getPais().getIdpais());
        view.setFormConfiguracion(conf,imp);
        
        view.addLimpiarListener(new limpiarListener());              
        view.addGuardarListener(new guardarConfiguracionListener());
    }   

    class guardarConfiguracionListener implements ActionListener{

        @Override
        public void actionPerformed(ActionEvent e) {                        
            conf.setTarifadist(view.getTarifa());                      
            conf.setMinpasslong(view.getLong());
            conf.setNumcaresp(view.getCarEsp());
            conf.setNumcarnum(view.getCarNum());
            conf.setNumcaralf(view.getCarAlf());
            conf.setTmaxcont(24);
            conf.setTmaxintercont(48);            
            conf.setFechamod(new Date());
            dao.guardarConfiguracion(conf);   
                        
            imp.setIva(view.getIva()); 
            dao.guardarImpuesto(imp);
            LogHelper.registrarOperacion(usract, Constante.ACCION_MODIFICAR, Constante.OBJETO_CONFIGURACION, "Se modificó la configuración con código "+conf.getIdconfiguracion());
            view.setFormConfiguracion(conf, imp);
            ValHelper.mostrarAviso("se cambió la configuración del sistema con éxito");
        }
    }    
    
    class limpiarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            view.LimpiarDatos();
        }        
    }      
}
